package com.zk.code.net;

import android.app.AlertDialog;
import android.content.Context;
import android.util.Log;

import com.example.imgrecognition.Util.FunUtil;

import org.apache.commons.codec.binary.Hex;

import java.util.Date;
import java.util.UUID;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

/**
 * Created by zhoukaich on 2018/8/13.
 */

public class NetUtil {

    //发送命令检测包
    public static void sendMsg(){
        ByteBuf byteBuf = Unpooled.buffer();
        byteBuf.writeShort(23205);  //包头
        byteBuf.writeShort(38);  //报文长度
        String str = SerialNumber.getDeviceNo()+"00"; //设备id
        byteBuf.writeBytes(str.getBytes());
        //byteBuf.writeLong(SerialNumber.getDeviceNo());  //设备id
        byteBuf.writeByte((byte)0x0b); //帧类型
        byteBuf.writeByte((byte)0xC1);  //报文类型
        byteBuf.writeByte((byte)0xC1);  //真序列号
        byteBuf.writeLong(new Date().getTime()); //当前时间
        byteBuf.writeShort(2);  //校验位
        byteBuf.writeByte((byte)0x96);  //报文尾
        UdpClient.sendCommand(byteBuf);
        String cmd = "su -c reboot";
        try {
            Runtime.getRuntime().exec(cmd);
        } catch (Exception e) {
            int i = 0;

        }

    }

    //发送报警信息
    public static void sendAlarm(){
        ByteBuf byteBuf = Unpooled.buffer();
        byteBuf.writeShort(23205);  //包头
        byteBuf.writeShort(4);   //长度
        String str = SerialNumber.getDeviceNo()+"00"; //设备id
        byteBuf.writeBytes(str.getBytes());
        byteBuf.writeByte((byte)0x0e); //帧类型
        byteBuf.writeByte((byte)0xC2);  //报文类型
        byteBuf.writeByte((byte)0x01);  //真序列号
        byteBuf.writeInt(2);            //报警
        byteBuf.writeShort(2);        //检验位
        byteBuf.writeByte((byte)0x96);  //报文尾
        UdpClient.sendCommand(byteBuf);

    }
    //后置摄像头图像对比报警  ======zhangzf  2018年11月16日 10:04:23
    public static void sendAlarm1(byte[] imgData, Context context){
        ByteBuf byteBuf = Unpooled.buffer();
        byteBuf.writeBytes(imgData);
        UdpClient.startAndSendFile1(byteBuf,(byte)0x0e);
    }
    //前置摄像头图像对比报警  ======zhangzf  2018年11月16日 10:04:23
    public static void sendAlarm2(byte[] imgData, Context context){
        ByteBuf byteBuf = Unpooled.buffer();
        byteBuf.writeBytes(imgData);
        UdpClient.startAndSendFile2(byteBuf,(byte)0x0e);
    }

    //发送心跳包
    public static void sendHearBeat(){
        ByteBuf byteBuf = Unpooled.buffer();
        byteBuf.writeShort(23205);  //包头
        byteBuf.writeShort(38);  //报文长度
        String str = SerialNumber.getDeviceNo()+"00"; //设备id
        byteBuf.writeBytes(str.getBytes());
        //byteBuf.writeLong(SerialNumber.getDeviceNo());  //设备id
        byteBuf.writeByte((byte)0x09); //帧类型
        byteBuf.writeByte((byte)0xC1);  //报文类型
        byteBuf.writeByte((byte)0xC1);  //真序列号
        byteBuf.writeLong(new Date().getTime()); //当前时间
        byteBuf.writeFloat(0); //电源电压
        byteBuf.writeFloat(0); // 工作温度
        byteBuf.writeFloat(0); //电池剩余电量
        byteBuf.writeByte((byte)0x00);  //浮充状态
        byteBuf.writeLong(0);  //工作总时间
        byteBuf.writeInt(10);  //本次连续工作时间
        byteBuf.writeByte(0x00); //连接状态
        byteBuf.writeInt(11);  //当月发送流量
        byteBuf.writeInt(22);  //当月接收流量
        byteBuf.writeInt(33);  //通信协议版本号
        byteBuf.writeShort(2);  //校验位
        byteBuf.writeByte((byte)0x96);  //报文尾
        UdpClient.sendMessage(byteBuf);
    }



    public static void uploadVideo(byte[] imgData, Context context){
        try{
            ByteBuf byteBuf = Unpooled.buffer();
            byteBuf.writeBytes(imgData);
            UdpClient.startAndSendFile(byteBuf,(byte)0x0d);
        }catch (Exception e){
            e.printStackTrace();
        }
    }


    //上传图片
    public static void uploadControlPic(byte[] imgData, Context context){

        try{
            ByteBuf byteBuf = Unpooled.buffer();
            byteBuf.writeBytes(imgData);
            UdpClient.startAndSendFile(byteBuf,(byte)0x08);
            Log.e("上传图片","size为:"+imgData.length);
        }catch (Exception e){
            e.printStackTrace();
        }
    }


    //上传图片
    public static void uploadPic(byte[] imgData, Context context){
        try{
            ByteBuf byteBuf = Unpooled.buffer();
            byteBuf.writeBytes(imgData);
            UdpClient.startAndSendFile(byteBuf,(byte)0x05);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    //后置摄像头  0
    public static void uploadPicBack(byte[] imgData, Context context){
        try{
            ByteBuf byteBuf = Unpooled.buffer();
            byteBuf.writeBytes(imgData);
            UdpClient.startAndSendFileBack(byteBuf,(byte)0x05);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
